Restoration of individual data objects such as file system objects, electronic files and folders/directories from backups has been a concern throughout the era of the personal computer. Users and system administrators would like the ability to restore individual data objects such as file system objects from full computer images (i.e., image level backups), including, but not limited to, full backups, incremental backups, snapshots, copies, and replicas of a backed up computer, application server, or file server.
Examples of file system objects that typically need to be restored from image level backups include, but are not limited to: a system file; an application executable file from an application server; an application configuration file from an application server; a database file from a database server backup; an individual electronic file or document from a user's home folder from a file server backup; or a directory/folder from a file server backup. For example, a database file from a MICROSOFT™ SQL SERVER™, MYSQL™, MICROSOFT™ Access, SYBASE™, or ORACLE™ database may need to be restored from an image level backup. As would be understood by one skilled in the relevant art(s), database servers, file servers, and other servers run a variety of operating systems (OSs) which in turn support different file systems.
Conventional methods for restoring file system objects from an image level backup include extracting an image level backup, and mounting a virtual disk image as a disk accessible from a computer running an operating system (OS) that supports the file system being restored inside a virtual disk image. While there are tools available which can mount a virtual disk image for the purpose of restoring file system objects from a backup, these tools are unable to preserve directory permissions, file ownership, and other attribute information when the data objects are restored from a computer image that does not run the same OS as the destination for the restored objects because of difference in file systems between the computer image and the destination.
Traditional methods for restoring data objects from an image level backup having various file system types have significant drawbacks. For example, these methods and tools often assume that the OS used to run the backup/restoration tool is compatible with the file system on the mounted virtual disk image, which is not always the case. For example, mounting a virtual disk image of a UNIX or Linux virtual machine to a Windows machine will not enable file and directory attributes to be preserved during restoration. This is because MICROSOFT™ Windows OSs do not implement support for some journaled UNIX and Linux file systems such as the third and fourth extended file systems (ext3 and ext4). Similarly, mounting a virtual disk image of a Windows virtual machine to some UNIX or Linux machines may not enable file and folder attributes to be preserved during restoration. This is because some UNIX and Linux OSs do not implement fully featured support for some Windows file systems such as the New Technology File System (NTFS).
To work around these limitations, some traditional solutions implement custom file system drivers that add support to additional file systems to the OS being used to perform the object level restoration. For example, custom MICROSOFT™ Windows file system drivers exist which can be used to read data from the ext3 Linux file system. However, this workaround still has a number of additional drawbacks. First, auxiliary file data such as permissions and ownership attributes is lost when processing, transferring, and saving the restored file to a different, target OS and file system. Secondly, additional third party drivers are known to often negatively affect system stability. Finally, this solution also imposes a high cost of development and maintenance due to the need to update the tool being used for restores when a file system format changes due to updates, or upgrades or when there is a need to support another file system type due to the introduction of new file system types preserved on the restored file.
Therefore, there is a need for an efficient low cost method of object level backup restoration that supports multiple file systems. What is further needed are systems for object level backup restorations from image level backups having various file system types, wherein file attributes such as permissions and ownerships are preserved.